Crate flipperzero_sys
source ·Expand description
Low-level bindings for the Flipper Zero.
Modules
- Furi helpers.
Macros
- Create a static C string. Will automatically add a NUL terminator.
- Crash the system.
Structs
- Comparator
- Font parameters
- File browser dialog extra options. This can be default-initialized using {@link dialog_file_browser_set_basic_options}.
- Interface for ELF loader to resolve symbols
- Structure that hold file info
- An object that describes a plugin - must be returned by plugin’s entry point
- Cortex timer provides high precision low level expiring timer
- FuriHalCryptoKey
- FuriHal i2c bus
- FuriHal i2c handle
- FuriHal spi bus
- FuriHal spi handle
- General Purpose I/O
- Gpio structure
- Inter-integrated Circuit Interface
- Input Event, dispatches with FuriPubSub
- Structure definition of some features of COMP instance.
- LL GPIO Init Structure definition
- LPTIM Init structure definition
- LL LPUART Init Structure definition
- RTC Init structures definition
- SPI Init structures definition
- TIM Time Base configuration structure definition.
- TIM Output Compare configuration structure definition.
- LL USART Init Structure definition
- LPTIMER
- Real-Time Clock
- Serial Peripheral Interface
- Scene Manager event
- Scene Manager configuration structure Contains array of Scene handlers
- TIM
- Universal Synchronous Asynchronous Receiver Transmitter
- Represents a USB device data.
- MD5 context structure
- task. h Type by which tasks are referenced. For example, a call to xTaskCreate returns (via a pointer parameter) an TaskHandle_t variable that can then be used as a parameter to vTaskDelete to delete the task.
- Line Coding Structure
- Represents a USB device descriptor
- Represents generic USB control request.
- Represents a hardware USB driver call table.
- USB device status data.
Constants
- Default, loader lock is used
- Safe to run with insomnia mode on
- Error
- Last element
- OK
- Read access
- Read and write access
- Write access
- File/Dir already opened
- Access denied
- File/Dir already exist
- Internal error
- Invalid name/path
- Invalid API parameter
- File/Dir does not exist
- Function not implemented
- FS not ready
- No error
- Creates a new file. If file exist, truncate to zero size
- Creates a new file. Fails if the file is exist
- Open file. Create new file if not exist
- Open file. Create new file if not exist. Set R/W pointer to EOF
- Open file, fail if file doesn’t exist
- tags do not match, auth failed
- error during encryption/decryption
- operation successful
- Encrypted with Master key
- Master key
- Simple unencrypted key
- Bus activation event, called before handle activation
- Bus deactivation event, called after handle deactivation
- Bus deinitialization event, called on system stop
- Bus initialization event, called on system start
- Bus lock event, called before activation
- Bus unlock event, called after deactivation
- Handle activate: connect gpio and apply bus config
- Handle deactivate: disconnect gpio and reset bus config
- New data obtained, and this is end of package
- New data obtained, and this is end of package and no more data available
- New data obtained
- Bit Rate 1,66 kbit/s (fc/8192) NFCV VCD->VICC 1of256
- Bit Rate 52.97 kbit/s (fc/256) Fast Mode VICC->VCD
- Bit Rate 106 kbit/s (fc/128)
- Bit Rate 212 kbit/s (fc/64)
- Bit Rate 424 kbit/s (fc/32)
- Bit Rate 848 kbit/s (fc/16)
- Bit Rate 1695 kbit/s (fc/8)
- Bit Rate 3390 kbit/s (fc/4)
- Bit Rate 6780 kbit/s (fc/2)
- Bit Rate 13560 kbit/s (fc)
- Value indicating to keep the same previous bit rate
- Error handling set to perform as NFC compliant device
- No special error handling will be performed
- Mode to perform as Active P2P (ISO18092) Target
- Mode to perform as NFCA (ISO14443A) Listener (PICC)
- Mode to perform as NFCA (ISO14443B) Listener (PICC)
- Mode to perform as NFCA (ISO15963) Listener (PICC)
- No mode selected/defined
- Mode to perform as Active P2P (ISO18092) Initiator
- Mode to perform as CTS Poller (PCD)
- Mode to perform as B’ Calypso (Innovatron) (PCD)
- Mode to perform as NFCA (ISO14443A) Poller (PCD)
- Mode to perform as NFCA T1T (Topaz) Poller (PCD)
- Mode to perform as NFCB (ISO14443B) Poller (PCD)
- Mode to perform as NFCF (FeliCa) Poller (PCD)
- Mode to perform as NFCV (ISO15963) Poller (PCD)
- Mode to perform as PicoPass / iClass Poller (PCD)
- Call again
- device or resource busy
- crc error
- operation aborted due to disabled configuration
- transfer has already finished
- fifo over or underflow error
- Framing error
- expected hw do not match
- lost one or more received bytes
- indicates error detected but to be ignored
- Incomplete byte rcvd
- Incomplete byte rcvd - 1 bit
- Incomplete byte rcvd - 2 bit
- Incomplete byte rcvd - 3 bit
- Incomplete byte rcvd - 4 bit
- Incomplete byte rcvd - 5 bit
- Incomplete byte rcvd - 6 bit
- Incomplete byte rcvd - 7 bit
- Internal Error
- invalid or not initalized device handle
- generic IO error
- blocking procedure reached maximum runs
- memory corruption
- not enough memory to perform the requested operation
- No message of desired type
- not implemented
- transponder not found
- requested operation not supported
- no error occurred
- lost one or more received bytes
- parity error
- Parameter error
- protocol error
- device requested release
- indicates error in state machine (unexpected cmd)
- error sending
- device requested sleep
- indicates error in state machine (unknown cmd)
- System error
- error due to timeout
- write error
- incorrent state for requested operation
- Boot to DFU (MCU bootloader by ST)
- Normal boot mode, default value
- Boot to Update, post update
- Boot to Update, pre update
- Boot to Update, main
- Enable allocation tracking for all threads
- Enable allocation tracking for main application thread
- Disable allocation tracking
- Enable allocation tracking for main and children application threads
- Day/Month/Year
- Month/Day/Year
- Year/Month/Day
- 12-hour format
- 24-hour format
- Imperial measurement units
- Metric measurement units
- Pointer to last fault message
- RTC structure header
- LFS geometry fingerprint
- Service value, do not use
- Failed pins count
- Various system bits
- Pointer to Version
- Bus activation event, called before handle activation
- Bus deactivation event, called after handle deactivation
- Bus deinitialization event, called on system stop
- Bus initialization event, called on system start
- Bus lock event, called before activation
- Bus unlock event, called after deactivation
- Handle activate: connect gpio and apply bus config
- Handle deactivate: disconnect gpio and reset bus config
- Handle deinit, called on system stop, deinitialize gpio for default state
- Handle init, called on system start, initialize gpio for idle state
- Center Frequency: 315MHz. Path 2: SW1RF2-SW2RF1, LCLCLCL
- Center Frequency: 433MHz. Path 1: SW1RF1-SW2RF2, LCLCL
- Center Frequency: 868MHz. Path 3: SW1RF3-SW2RF3, LCLC
- Isolate Radio from antenna
- FM, deviation 2.380371 kHz, asynchronous
- FM, deviation 47.60742 kHz, asynchronous
- GFSK, deviation 19.042969 kHz, 9.996Kb/s, asynchronous
- default configuration
- MSK, deviation 47.60742 kHz, 99.97Kb/s, asynchronous
- OOK, bandwidth 270kHz, asynchronous
- OOK, bandwidth 650kHz, asynchronous
- Parameter error.
- Resource not available.
- Operation not completed within the timeout period.
- Operation completed successfully.
- Prevents enum down-size compiler optimization.
- High
- Highest
- Idle priority
- Deferred ISR (highest possible)
- Low
- Lowest
- Uninitialized, choose system default
- Normal
- One-shot timer.
- Repeating timer.
- Number of GPIO on one port.
- JTCK-SWCLK Alternate Function mapping
- JTDI Alternate Function mapping
- JTDO-TRACESWO Alternate Function mapping
- JTMS-SWDIO Alternate Function mapping
- LSCO Alternate Function mapping
- MCO Alternate Function mapping
- NJTRST Alternate Function mapping
- RCT_OUT Alternate Function mapping
- RTC_REFIN Alternate Function mapping
- System Function mapping
- TRACECK Alternate Function mapping
- TRACED0 Alternate Function mapping
- TRACED1 Alternate Function mapping
- TRACED2 Alternate Function mapping
- TRACED3 Alternate Function mapping
- TRIG_INOUT Alternate Function mapping
- LPTIM1 Alternate Function mapping
- TIM1 Alternate Function mapping
- TIM2 Alternate Function mapping
- TIM1 Alternate Function mapping
- TIM2 Alternate Function mapping
- SAI1_CK1 Alternate Function mapping
- SPI2 Alternate Function mapping
- TIM1 Alternate Function mapping
- I2C1 Alternate Function mapping
- I2C3 Alternate Function mapping
- SPI1 Alternate Function mapping
- SPI2 Alternate Function mapping
- LSCO Alternate Function mapping
- MCO Alternate Function mapping
- RF_DTB0 Alternate Function mapping
- RF_DTB1 Alternate Function mapping
- RF_DTB2 Alternate Function mapping
- RF_DTB3 Alternate Function mapping
- RF_DTB4 Alternate Function mapping
- RF_DTB5 Alternate Function mapping
- RF_DTB6 Alternate Function mapping
- RF_DTB7 Alternate Function mapping
- RF_DTB8 Alternate Function mapping
- RF_DTB9 Alternate Function mapping
- RF_DTB10 Alternate Function mapping
- RF_DTB11 Alternate Function mapping
- RF_DTB12 Alternate Function mapping
- RF_DTB13 Alternate Function mapping
- RF_DTB14 Alternate Function mapping
- RF_DTB15 Alternate Function mapping
- RF_DTB16 Alternate Function mapping
- RF_DTB17 Alternate Function mapping
- RF_DTB18 Alternate Function mapping
- RF_MISO Alternate Function mapping
- RF_MOSI Alternate Function mapping
- RF_NSS Alternate Function mapping
- RF_SCK Alternate Function mapping
- USART1 Alternate Function mapping
- IR Alternate Function mapping
- LPUART1 Alternate Function mapping
- TSC Alternate Function mapping
- QUADSPI Alternate Function mapping
- USB Alternate Function mapping
- LCD Alternate Function mapping
- COMP1 Alternate Function mapping
- COMP2 Alternate Function mapping
- TIM1 Alternate Function mapping
- SAI1 Alternate Function mapping
- LPTIM2 Alternate Function mapping
- TIM2 Alternate Function mapping
- TIM16 Alternate Function mapping
- TIM17 Alternate Function mapping
- EVENTOUT Alternate Function mapping
- just dummy value
- Desktop layer for internal use. Like fullscreen but with status bar
- Fullscreen layer, no status bar
- Don’t use or move, special value
- Status bar left-side layer, auto-layout
- Status bar right-side layer, auto-layout
- Window layer, status bar is shown
- Signal, provided by callback is new and encoder should be reseted
- Signal, provided by callback is same. No encoder resetting.
- Special value
- Long event, emitted after INPUT_LONG_PRESS_COUNTS interval, asynchronous to InputTypeRelease
- Special value for exceptional
- Press event, emitted after debounce
- Release event, emitted after debounce
- Repeat event, emitted with INPUT_LONG_PRESS_COUNTS period after InputTypeLong event
- Short event, emitted after InputTypeRelease done within INPUT_LONG_PRESS interval
- Day/Month/Year
- Month/Day/Year
- Year/Month/Day
- Imperial measurement units
- Metric measurement units
- 12-hour format
- 24-hour format
- Search for alarmed device
- Search for all devices
- General unclassified error
- Payload encoder failure
- Missing
Bit
- Missing
Custom_preset_module
- Missing
Frequency
- Missing or invalid file header
- Missing
Key
- Missing some other mandatory keys
- Missing
Preset
- Missing
Protocol
name - Missing
Te
- Invalid bit count value
- Prevents enum down-size compiler optimization.
- Desktop layer: fullscreen with status bar on top of it. For internal usage.
- Fullscreen layer: without status bar
- Window layer: with status bar
- Model consist of atomic types and/or partial update is not critical for rendering. Lock free.
- Model access is guarded with mutex. Locking gui thread.
- Model is not allocated
- Special value, don’t use it
- <\brief Function completes request accepted ZLP or data will be send.
- <\brief Function has an error, STALLPID will be issued.
- <\brief Function is busy. NAK handshake.
Statics
- System Clock Frequency
- External i2c bus, I2C3, under reset when not used
- Internal(power) i2c bus, I2C1, under reset when not used
- Handle for external i2c bus Bus: furi_hal_i2c_bus_external Pins: PC0(SCL) / PC1(SDA), float on release Params: 100khz
- Handle for internal(power) i2c bus Bus: furi_hal_i2c_bus_external Pins: PA9(SCL) / PA10(SDA), float on release Params: 400khz
- Pointer to currently used SPI Handle
- Furi Hal Spi Bus D (Display, SdCard)
- ST7567(Display) on
furi_hal_spi_bus_d
- External on
furi_hal_spi_bus_r
Preset:furi_hal_spi_preset_1edge_low_2m
miso: pa6 mosi: pa7 sck: pb3 cs: pa4 (software controlled) - ST25R3916 on
furi_hal_spi_bus_r
- SdCard in fast mode on
furi_hal_spi_bus_d
- SdCard in slow mode on
furi_hal_spi_bus_d
- CC1101 on
furi_hal_spi_bus_r
- Furi Hal Spi Bus R (Radio: CC1101, Nfc, External)
- Preset for SdCard in slow mode
- Preset for ST7567 (Display)
- Preset for CC1101
- Preset for SdCard in fast mode
- Preset for ST25R916
- Messages
- Display: backlight always on unlock
- Display: backlight always on lock
- Display: backlight force off
- Display: backlight force off after a delay of 1000ms
- Display: backlight wakeup
- Message sequences
- USB device interface modes
Functions
- Crash system
- Halt system
- Freed space obtained through the aligned_malloc function
- An aligned version of malloc, used when you need to get the aligned space on the heap Freeing the received address is performed ONLY through the aligned_free function
- Convert ASCII hex values to byte
- Get length of first word from arguments string
- Get length of arguments string
- Convert hex ASCII values to byte array
- Extract int value and trim arguments string
- Extract the first quoted argument from the argument string and trim the argument string. If the argument is not quoted, calls args_read_string_and_trim.
- Extract first argument from arguments string and trim arguments string
- atoi⚠
- Add parity to bit array
- Copy bits from source to destination.
- Slow, but generic CRC8 implementation
- Slow, but generic CRC16 implementation
- Get the bit of a byte.
- Count 1 bits in data
- Get the bits of a data, as uint8_t.
- Get the bits of a data, as uint16_t.
- Get the bits of a data, as uint32_t.
- Print data as bit array
- Print data as bit array and mark regions. Regions needs to be sorted by start position.
- Push a bit into a byte array.
- Remove bit every n in array and shift array left. Useful to remove parity.
- Reverse bits in uint8_t, faster than generic bit_lib_reverse_bits.
- Reverse bits in uint16_t, faster than generic bit_lib_reverse_bits.
- Reverse bits in bit array
- Set a bit in a byte array.
- Set the bit at the given position to the given value.
- Test parity of bit array, check parity for every parity_length block from start
- Test parity of given bits
- Restart MCU to launch radio stack firmware if necessary
- Initialize start core2 and initialize transport
- Is core2 alive and at least FUS is running
- Is core2 radio stack present and ready
- Set callback for NVM in RAM changes
- Start Core2 Radio stack
- Stop SHCI thread
- Waits for C2 to reports its mode to callback
- Disconnect from Central
- Forget bonded devices
- Set default keys storage file path
- Set keys storage file path
- Change BLE Profile
- Set callback for Bluetooth status change notification
- Allocate a file stream with buffered read operations
- Closes the file.
- Retrieves the error id from the file object
- Opens an existing file or creates a new one.
- Forces write from cache to the underlying file.
- Add item to button menu instance
- Allocate and initialize new instance of ButtonMenu model
- Free ButtonMenu element
- Get button menu view
- Clean button menu
- Set ButtonMenu header on top of canvas
- Set selected item
- Add item to button_panel module. Have to set element in bounds of allocated size by X and by Y.
- Add label to button_panel module.
- Allocate new button_panel module.
- Free button_panel module.
- Get button_panel view.
- Reserve space for adding items. One does not simply use button_panel_add_item() without this function. It should be allocated space for it first.
- Free items from button_panel module. Preallocated matrix stays unchanged.
- Allocate and initialize byte input. This byte input is used to enter bytes.
- Deinitialize and free byte input
- Get byte input view
- Set byte input header text
- Set byte input result callback
- Clear canvas
- Commit canvas. Send buffer to display
- Get current font height
- Draw bitmap picture at position defined by x,y.
- Draw box of width, height at x,y
- Draw circle at x,y with radius r
- Draw disc at x,y with radius r
- Draw dot at x,y
- Draw frame of width, height at x,y
- Draw glyph
- Draw icon at position defined by x,y.
- Draw animation at position defined by x,y.
- Draw icon at position defined by x,y with rotation and flip.
- Draw line from x1,y1 to x2,y2
- Draw rounded-corner box of width, height at x,y, with round value raduis
- Draw rounded-corner frame of width, height at x,y, with round value radius
- Draw string at position of baseline defined by x, y.
- Draw aligned string defined by x, y. Align calculated from position of baseline, string width and ascent (height of the glyphs above the baseline)
- Draw triangle with given base and height lengths and their intersection coordinate
- Draw XBM bitmap
- Get font parameters
- Get glyph width
- Get Canvas height
- Invert drawing color
- Reset canvas drawing tools configuration
- Set transparency mode
- Set drawing color
- Set custom drawing font
- Set drawing font
- Set font swap Argument String Rotation Description
- Get string width
- Get Canvas width
- Add cli command Registers you command callback
- Non-blocking check for interrupt command received
- Delete cli command
- Read character
- New line Send new ine sequence
- Print unified cmd usage tip
- Read from terminal
- Non-blocking read from terminal
- Write to terminal Do it only from inside of cli call.
- Add API resolver to composite resolver
- Allocate composite API resolver
- Free composite API resolver
- Get API interface from composite resolver
- Allocate encoder and decoder
- Decode data
- Encode data
- Free encoder and decoder
- Initialize icon compressor
- Decompress icon
- Free icon compressor
- Allocate and initialize dialog This dialog used to ask simple questions
- Disable press/release events
- Enable press/release events
- Deinitialize and free dialog
- Get dialog view
- Clean dialog
- Set center button text If text is null, center button will not be rendered and processed
- Set dialog context
- Set dialog header text If text is null, dialog header will not be rendered
- Set dialog icon If x or y is negative, dialog icon will not be rendered
- Set left button text If text is null, left button will not be rendered and processed
- Set dialog result callback
- Set right button text If text is null, right button will not be rendered and processed
- Set dialog text If text is null, dialog text will not be rendered
- Initialize file browser dialog options and set default values. This is guaranteed to initialize all fields so it is safe to pass pointer to uninitialized ``` options} and assume that the data behind it becomes fully initialized after the call.
- Shows and processes the file browser dialog
- Allocate and fill message
- Free message struct
- Set message buttons text, button text can be NULL if you don’t want to display and process some buttons
- Set message header
- Set message icon
- Set message text
- Show message from filled struct
- Show SD error message (with question sign)
- Allocate DirWalk
- Close directory
- Free DirWalk
- Get error id
- Open directory
- Read next element from directory
- Set filter callback (Should return true if the data is valid)
- Set recursive mode (true by default)
- Deed complete notification. Call it on deed completion. See dolphin_deed.h for available deeds. In futures it will become part of assets. Thread safe, async
- Flush dolphin queue and save state Thread safe, blocking
- Retrieve dolphin stats Thread safe, blocking
- Draw bold rounded frame
- Draw bubble frame for text
- Draw bubble frame for text with corner
- Draw button in center
- Draw button in left corner
- Draw button in right corner
- Draw rounded frame
- Draw multiline text
- Draw aligned multiline text
- Draw framed multiline text
- Draw progress bar.
- Draw progress bar with text.
- Draw scrollable text line
- Draw scrollbar on canvas.
- Draw scrollbar on canvas at specific position.
- Draw slightly rounded box
- Draw slightly rounded frame
- Trim string buffer to fit width in pixels
- Draw text box element
- Resolver for API entries using a pre-sorted table with hashes
- Allocate and initialize empty screen This empty screen used to ask simple questions like Yes/
- Deinitialize and free empty screen
- Get empty screen view
- Checks if file info is directory
- Allocate file stream
- Closes the file.
- Retrieves the error id from the file object
- Opens an existing file or create a new one.
- Gets the error text from FS_Error
- Initialize FlipperApplication object
- Allocate application thread at entry point address, using app name and stack size from metadata. Returned thread isn’t started yet. Can be only called once for application instance.
- Destroy FlipperApplication object
- Get pointer to application manifest for preloaded application
- Check if application is a plugin (not a runnable standalone app)
- Load name and icon from FAP file.
- Get text description of load status
- Check if manifest is compatible with current ELF API interface
- Check if application is compatible with current hardware
- Check if manifest is valid
- Load sections and process relocations for already pre-loaded application
- Get plugin descriptor for preloaded plugin
- Validate elf file and load application metadata
- Validate elf file and load application manifest
- Get text description of preload status
- Allocate FlipperFormat as file, buffered mode.
- Closes the file, use only if FlipperFormat allocated as a buffered file.
- Open file. Creates a new file, or deletes the contents of the file if it already exists, buffered mode. Use only if FlipperFormat allocated as a buffered file.
- Open existing file, buffered mode. Use only if FlipperFormat allocated as a buffered file.
- Removes the first matching key and its value. Sets the RW pointer to a position of deleted data.
- Allocate FlipperFormat as file.
- Closes the file, use only if FlipperFormat allocated as a file.
- Open file. Creates a new file, or deletes the contents of the file if it already exists. Use only if FlipperFormat allocated as a file.
- Open existing file for writing and add values to the end of file. Use only if FlipperFormat allocated as a file.
- Open existing file. Use only if FlipperFormat allocated as a file.
- Open file. Creates a new file, fails if file already exists. Use only if FlipperFormat allocated as a file.
- Free FlipperFormat.
- Returns the underlying stream instance. Use only if you know what you are doing.
- Get the count of values by key
- Updates the value of the first matching key to a bool array value, or adds the key and value if the key did not exist. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a float array value, or adds the key and value if the key did not exist. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to an array of hex-formatted bytes, or adds the key and value if the key did not exist. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a int32 array value, or adds the key and value if the key did not exist. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a string value, or adds the key and value if the key did not exist. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a string value, or adds the key and value if the key did not exist. Plain C version. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a uint32 array value, or adds the key and value if the key did not exist. Sets the RW pointer to a position at the end of inserted data.
- Check if the key exists.
- Read array of bool by key
- Read array of float by key
- Read the header (file type and version).
- Read array of hex-formatted bytes by key
- Read array of uint64 in hex format by key
- Read array of int32 by key
- Read a string by key
- Read array of uint32 by key
- Rewind the RW pointer.
- Move the RW pointer at the end. Can be useful if you want to add some data after reading.
- Set FlipperFormat mode.
- Removes a key and the corresponding value string from the stream and inserts a new key/value pair.
- Get the count of values by key from a stream.
- Reads a value by key from a stream.
- Writes a comment string to the stream.
- Writes a key/value pair to the stream.
- Allocate FlipperFormat as string.
- Updates the value of the first matching key to a bool array value. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a float array value. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to an array of hex-formatted bytes. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a int32 array value. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a string value. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a string value. Plain C version. Sets the RW pointer to a position at the end of inserted data.
- Updates the value of the first matching key to a uint32 array value. Sets the RW pointer to a position at the end of inserted data.
- Write key and array of bool
- Write comment
- Write comment. Plain C string version.
- Write key and array of float
- Write the header (file type and version).
- Write the header (file type and version). Plain C string version.
- Write key and array of hex-formatted bytes
- Write key and array of uint64 in hex format
- Write key and array of int32
- Write key and string
- Write key and string. Plain C string version.
- Write key and array of uint32
- Compare two floating point numbers
- free⚠
- Delay in milliseconds This method uses kernel ticks on the inside, which causes delay to be aliased to scheduler timer intervals. Real wait time will be between X+ milliseconds. Special value: 0, will cause task yield. Also if used when kernel is not running will fall back to
furi_delay_us
. - Delay execution Also keep in mind delay is aliased to scheduler timer intervals.
- Delay until tick
- Delay in microseconds Implemented using Cortex DWT counter. Blocking and non aliased.
- Allocate FuriEventFlag
- Clear flags
- Deallocate FuriEventFlag
- Get flags
- Set flags
- Wait flags
- Get current tick counter System uptime, may overflow.
- Change BLE app Restarts 2nd core
- Clear key storage
- Get BT/BLE system component state
- Check & switch C2 to given mode
- Get key storage buffer address and size
- Get radio stack type
- Get RSSI
- Get number of transmitted packets
- Set the following consumer key to pressed state and send HID report
- Set the following consumer key to released state and send HID report
- Set consumer key to released state and send HID report
- Press keyboard button
- Release keyboard button
- Release all keyboard buttons
- Set mouse movement and send HID report
- Set mouse button to pressed state and send HID report
- Set mouse button to released state and send HID report
- Set mouse button to released state and send HID report
- Set mouse wheel position and send HID report
- Start Hid Keyboard Profile
- Stop Hid Keyboard Profile
- Checks if BLE state is active
- Get BT/BLE system component state
- Check if radio stack supports BLE GAT/GAP
- Check if radio stack supports testing
- Lock core2 state transition
- Get SRAM2 hardware semaphore
- Release SRAM2 hardware semaphore
- Reinitialize core2 Also can be used to prepare core2 for stop modes
- Notify that application buffer is empty
- Set Serial service events callback
- Set BLE RPC status
- Start Serial Profile
- Stop Serial Profile
- Send data through BLE
- Set key storage change callback
- Start advertising
- Start BLE app
- Start receiving packets
- Start sending ble packets at a given frequency and datarate
- Start radio stack
- Set up the RF to listen to a given RF channel
- Start ble tone tx at given channel and power
- Stop advertising
- Stop sending ble packets
- Stop RF listenning
- Stop ble tone tx
- Lock core2 state transition
- Update battery level
- Update battery power state
- Early de-initialization
- Disable a peripheral by turning the clocking off and asserting the reset.
- Enable a peripheral by turning the clocking on and deasserting the reset.
- Early initialization
- Check if peripheral is enabled
- Reset a peripheral by sequentially asserting and deasserting the reset.
- Disable clock output on MCO pin
- Enable clock output on MCO pin
- Printf-like plain uart interface
- Enable DWT comparator Allows to programmatically set instruction/data breakpoints. More details on how it works can be found in armv7m official documentation: https://developer.arm.com/documentation/ddi0403/d/Debug-Architecture/ARMv7-M-Debug/The-Data-Watchpoint-and-Trace-unit/The-DWT-comparators https://developer.arm.com/documentation/ddi0403/d/Debug-Architecture/ARMv7-M-Debug/The-Data-Watchpoint-and-Trace-unit/Comparator-Function-registers--DWT-FUNCTIONn
- Reset DWT comparator
- Microseconds delay
- Get instructions per microsecond count
- Get Timer
- Check if timer expired
- Wait for timer expire
- Encrypt the input using AES-CTR Decryption can be performed by supplying the ciphertext as input. Inits and deinits the AES engine internally.
- Decrypt data
- Ensure that requested slot and slots before this slot contains keys. This function is used to provision FURI_HAL_CRYPTO_ENCLAVE_UNIQUE_KEY_SLOT. Also you may want to use it to generate some unique keys in user key slot range.
- Init AES engine and load key from crypto enclave
- Store key in crypto enclave
- Unload key and deinit AES engine
- Verify factory provisioned keys
- Encrypt data
- Encrypt/decrypt the input using AES-GCM When decrypting the tag generated needs to be compared to the tag attached to the ciphertext in a constant-time fashion. If the tags are not equal, the decryption failed and the plaintext returned needs to be discarded. Inits and deinits the AES engine internally.
- Decrypt the input using AES-GCM and verify the provided tag Inits and deinits the AES engine internally.
- Encrypt the input using AES-GCM and generate a tag Inits and deinits the AES engine internally.
- Init AES engine and load supplied key
- Unload key and de-init AES engine
- Disable MCU debug
- Enable MCU debug
- Check if GDB debug session is active
- Early de-initialization
- Early initialization
- Add and enable interrupt
- Disable interrupt
- Enable interrupt
- GPIO initialization function, normal version
- GPIO initialization function, extended version
- GPIO initialization function, simple version
- GPIO read pin.
- GPIO read pin.
- Remove interrupt
- GPIO write pin.
- GPIO write pin.
- Set the following consumer key to pressed state and send HID report
- Set the following consumer key to released state and send HID report
- Get USB HID keyboard leds state
- Get USB HID connection state
- Set the following key to pressed state and send HID report
- Set the following key to released state and send HID report
- Clear all pressed keys and send HID report
- Set mouse movement and send HID report
- Set mouse button to pressed state and send HID report
- Set mouse button to released state and send HID report
- Set mouse wheel position and send HID report
- Set USB HID connect/disconnect callback
- Get received U2F HID packet
- Get HID U2F connection state
- Send U2F HID response packet
- Set HID U2F event callback
- Acquire i2c bus handle
- Check if I2C device presents on bus
- Perform I2C device memory read
- Perform I2C device register read (8-bit)
- Perform I2C device register read (16-bit)
- Release i2c bus handle
- Perform I2C rx transfer
- Perform I2C tx and rx transfers
- Perform I2C tx transfer
- Perform I2C device memory
- Perform I2C device register write (8-bit)
- Perform I2C device register write (16-bit)
- Update emulation timer period
- Start emulation timer
- Stop emulation timer
- Set the pin to normal mode (open collector), and sets it to float
- Sets the pin to analog mode, and sets it to float
- iButton write pin
- Get device information
- Setup callback for previously initialized INFRARED RX interrupt.
- Setup hal for receiving silence timeout. Should be used with ‘furi_hal_infrared_timeout_irq_set_callback()’.
- Setup callback for reaching silence timeout on INFRARED port. Should setup hal with ‘furi_hal_infrared_setup_rx_timeout_irq()’ first.
- Initialize INFRARED RX timer to receive interrupts. It provides interrupts for every RX-signal edge changing with its duration.
- Deinitialize INFRARED RX interrupt.
- Set callback providing new data. This function has to be called before furi_hal_infrared_async_tx_start().
- Set callback for end of signal transmission
- Start IR asynchronous transmission. It can be stopped by 2 reasons: 1. implicit call for furi_hal_infrared_async_tx_stop() 2. callback can provide FuriHalInfraredTxGetDataStateLastDone response which means no more data available for transmission. Any func (furi_hal_infrared_async_tx_stop() or furi_hal_infrared_async_tx_wait_termination()) has to be called to wait end of transmission and free resources.
- Stop IR asynchronous transmission and free resources. Transmission will stop as soon as transmission reaches end of package (FuriHalInfraredTxGetDataStateDone or FuriHalInfraredTxGetDataStateLastDone).
- Wait for end of IR asynchronous transmission and free resources. Transmission will stop as soon as transmission reaches end of transmission (FuriHalInfraredTxGetDataStateLastDone).
- Check if INFRARED is in use now.
- Set ISR and enable interrupt with default priority We don’t clear interrupt flags for you, do it by your self.
- Set ISR and enable interrupt with custom priority We don’t clear interrupt flags for you, do it by your self.
- Set color in hardware LED blinking mode
- Start hardware LED blinking mode
- Stop hardware LED blinking mode
- Execute sequence
- Set light value
- Allocate memory from separate memory pool. That memory can’t be freed.
- Get free memory pool size
- Init memory pool manager
- Get max free block size from memory pool
- Disable memory protection unit
- Enable memory protection unit
- Activate NFC-A tag
- NFC poll
- Emulate NFC-A Target
- NFC stop sleep
- NFC field off
- NFC field on
- Check if nfc worker is busy
- Check if nfc is initialized
- NFC listen
- Read data in Target Listen mode
- Set Target in Sleep state
- Start Target Listen mode
- NFC deactivate and start sleep
- NFC start sleep
- NFC data exchange
- NFC data full exhange
- Check OTG status fault
- Check OTG status and disable it if falt happened
- Get power debug information
- Disable 3.3v on external gpio and sd card
- OTG disable
- Enable 3.3v on external gpio and sd card
- OTG enable
- Check if gauge is ok Verifies that:
- Get battery health state in percents
- Get battery charge voltage limit in V
- Get battery current in A
- Get battery capacity in mAh from battery profile
- Get full charge battery capacity in mAh
- Get remaining battery battery capacity in mAh
- Get temperature in C
- Get battery voltage in V
- Get predicted remaining battery capacity in percents
- Get USB voltage in V
- Get power information
- Enter insomnia mode Prevents device from going to sleep
- Exit insomnia mode Allow device to go to sleep
- Get charging status
- Get charge complete status
- Get OTG status
- Check if gauge requests system shutdown
- Poweroff device
- Reset device
- Set battery charge voltage limit in V Invalid values will be clamped downward to the nearest valid value.
- Switch MCU to SHUTDOWN
- Go to sleep
- Check if sleep availble
- Enter supress charge mode. Use this function when your application need clean power supply.
- Exit supress charge mode
- Is PWM channel running?
- Set PWM channel parameters
- Enable PWM channel and set parameters
- Disable PWM channel
- Fill buffer with random data
- Get random value
- Initialize random subsystem
- Get Region Data. Region data may be allocated in Flash or in RAM. Keep in mind that we don’t do memory management on our side.
- Get band data for frequency
- Get region name 2 letter Region code according to iso 3166 standard There are 2 extra values that we use in special cases:
- Сheck if transmission is allowed on this frequency for your flipper region
- Check if region data provisioned
- Set device region data
- Get a corresponding external connector pin number for a gpio
- Set comparator callback
- Start/Enable comparator
- Stop/Disable comparator
- Start/Enable Field Presence detect
- Stop/Disable Field Presence detect
- Check Field Presence
- Pulldown rfid pull pin
- Release rfid pull pin
- Config rfid pins to reset state
- Set read timer period
- Set read timer pulse
- Continue read timer
- Pause read timer, to be able to continue later
- Start read timer
- Stop read timer
- Convert DateTime to UNIX timestamp
- Get RTC boot mode
- Get RTC Date Time
- Get the number of days in the month.
- Gets the number of days in the year according to the Gregorian calendar.
- Get RTC Fault Data
- Get RTC Heap Track mode
- Get RTC Locale Date Format
- Get RTC Locale Time Format
- Get RTC Locale Units
- Get Log Level value
- Get Pin Fails count
- Get RTC register content
- Get UNIX Timestamp
- Check if RTC Flag is set
- Check if a year a leap year in the Gregorian calendar.
- Reset RTC Flag
- Set RTC boot mode
- Set RTC Date Time
- Set RTC Fault Data
- Set RTC Flag
- Set Heap Track mode
- Set RTC Locale Date Format
- Set RTC Locale Time Format
- Set locale units
- Set Log Level value
- Set Pin Fails count
- Set register content
- Force sync shadow registers
- Validate Date Time
- Acquire speaker ownership
- Check current process speaker ownership
- Release speaker ownership
- Set volume
- Play a note
- Stop playback
- Acquire SPI bus
- Deinitialize SPI Bus
- Deinitialize SPI Bus Handle
- Initialize SPI Bus Handle
- Initialize SPI Bus
- SPI Receive
- SPI Transmit and Receive
- SPI Transmit and Receive with DMA
- SPI Transmit
- Release SPI bus
- Flush rx FIFO buffer
- Flush tx FIFO buffer
- Get data GPIO
- Get LQI
- Get RSSI value in dBm
- Switch to Idle
- Wait for async transmission to complete
- Check if frequency is in valid range
- Check if received data crc is valid
- Load custom registers from preset
- Load PATABLE
- Load registers
- Read packet from FIFO
- Reset Issue reset command
- Switch to Receive
- Check if receive pipe is not empty
- Set frequency
- Set frequency and path This function automatically selects antenna matching network
- Set path
- Shutdown Issue SPWD command
- Send device to sleep mode
- Enable signal timings capture Initializes GPIO and TIM2 for timings capture
- Start async TX Initializes GPIO, TIM2 and DMA1 for signal output
- Disable signal timings capture Resets GPIO and TIM2
- Stop async transmission and cleanup resources Resets GPIO, TIM2, and DMA1
- Switch to Transmit
- Write packet to FIFO
- Transfer execution to address
- Deinit UART Configures GPIO to analog, clears callback and callback context, disables UART hardware
- Init UART Configures GPIO to UART function, сonfigures UART hardware, enables UART hardware
- Resume UART operation Resumes UART hardware from suspended state
- Changes UART baudrate
- Sets UART event callback
- Suspend UART operation Disables UART hardware, settings and callbacks are preserved
- Transmits data
- Disable USB device
- Enable USB device
- Get USB device configuration
- Check if USB device mode switch locked
- Lock USB device mode switch
- Restart USB device
- Set USB device configuration
- Unlock USB device mode switch
- Check target firmware version
- Get pointer to target ble local device name
- Get BLE MAC address
- Get pointer to target device name
- Get FCC ID
- Get address of version structure of firmware.
- Get hardware body
- Get hardware body color
- Get hardware connect
- Get hardware display id
- Get hardware region
- Get hardware region name
- Get hardware target
- Get hardware timestamp
- Get hardware version
- Get IC id
- Get MIC id
- Get model name
- Get model name
- Get pointer to target name
- Get OTP version
- Get const pointer to UID
- Get platform UID size in bytes
- Turn on/off vibro
- Get kernel systick frequency
- Check if CPU is in IRQ or kernel running and IRQ is masked Originally this primitive was born as a workaround for FreeRTOS kernel primitives shenanigans with PRIMASK. Meaningful use cases are: When kernel is started and you want to ensure that you are not in IRQ or IRQ is not masked(like in critical section)
- Lock kernel, pause process scheduling
- Restore kernel lock state
- Unlock kernel, resume process scheduling
- Get log level
- Log level from string
- Log level to string
- Print log record
- Print log record
- Set log level
- Allocate furi message queue
- Free queue
- Get message from queue
- Get queue capacity
- Get message count in queue
- Get message size
- Get queue available space
- Put message into queue
- Reset queue
- Convert milliseconds to ticks
- Acquire mutex
- Allocate FuriMutex
- Free FuriMutex
- Get mutex owner thread id
- Release mutex
- Allocate FuriPubSub Reentrable, Not threadsafe, one owner
- Publish message to FuriPubSub Threadsafe, Reentrable.
- Subscribe to FuriPubSub Threadsafe, Reentrable
- Unsubscribe from FuriPubSub No use of
pubsub_subscription
allowed after call of this method Threadsafe, Reentrable. - Close record
- Create record
- Check if record exists
- Open record
- Acquire semaphore
- Allocate semaphore
- Free semaphore
- Get semaphore count
- Release semaphore
- Allocate stream buffer instance. Stream buffer implementation assumes there is only one task or interrupt that will write to the buffer (the writer), and only one task or interrupt that will read from the buffer (the reader).
- Queries a stream buffer to see how much data it contains, which is equal to the number of bytes that can be read from the stream buffer before the stream buffer would be empty.
- Free stream buffer instance
- Queries a stream buffer to see if it is empty.
- Queries a stream buffer to see if it is full.
- Receives bytes from a stream buffer. Wakes up task waiting for space to become available if called from ISR.
- Resets a stream buffer to its initial, empty, state. Any data that was in the stream buffer is discarded. A stream buffer can only be reset if there are no tasks blocked waiting to either send to or receive from the stream buffer.
- Sends bytes to a stream buffer. The bytes are copied into the stream buffer. Wakes up task waiting for data to become available if called from ISR.
- Queries a stream buffer to see how much free space it contains, which is equal to the amount of data that can be sent to the stream buffer before it is full.
- Set trigger level for stream buffer. A stream buffer’s trigger level is the number of bytes that must be in the stream buffer before a task that is blocked on the stream buffer to wait for data is moved out of the blocked state.
- Allocate new FuriString.
- Allocate new FuriString and move source string content to it. Allocate the string, set it to the other one, and destroy the other one.
- Allocate new FuriString and printf to it. Initialize and set a string to the given formatted value.
- Allocate new FuriString and set it to string. Allocate & Set the string a to the string.
- Allocate new FuriString and set it to C string. Allocate & Set the string a to the C string.
- Allocate new FuriString and printf to it. Initialize and set a string to the given formatted value.
- Append a string to the string. Concatenate the string with the other string.
- Append to the string the formatted string of the given printf format.
- Append a C string to the string. Concatenate the string with the C string.
- Append to the string the formatted string of the given printf format.
- Compare two strings and return the sort order.
- Compare string with C string and return the sort order.
- Compare two strings (case insensitive according to the current locale) and return the sort order. Note: doesn’t work with UTF-8 strings.
- Compare string with C string (case insensitive according to the current locale) and return the sort order. Note: doesn’t work with UTF-8 strings.
- Check that string is empty or not
- Test if the string ends with the given string.
- Test if the string ends with the given C string.
- Test if two strings are equal.
- Test if the string is equal to the C string.
- Free FuriString.
- Get the character at the given index. Return the selected character of the string.
- Return the string view a classic C string.
- Compute a hash for the string.
- Trim the string left to the first ‘index’ bytes.
- Trim the string from position index to size bytes. See also furi_string_set_n.
- Move string_2 content to string_1. Set the string to the other one, and destroy the other one.
- Format in the string the given printf format
- Append a character to the string.
- Replace a string ‘needle’ to string ‘replace’ in a string from ‘start’ position. By default, start is zero. Return STRING_FAILURE if ‘needle’ not found or replace position.
- Replace all occurrences of ‘needle’ string into ‘replace’ string.
- Replace all occurrences of ‘needle’ C string into ‘replace’ C string.
- Replace in the string the sub-string at position ‘pos’ for ‘len’ bytes into the C string ‘replace’.
- Replace a C string ‘needle’ to C string ‘replace’ in a string from ‘start’ position. By default, start is zero. Return STRING_FAILURE if ‘needle’ not found or replace position.
- Reserve memory for string. Modify the string capacity to be able to handle at least ‘alloc’ characters (including final null char).
- Reset string. Make the string empty.
- Trim the string right from the ‘index’ position to the last position.
- Search the first occurrence of the needle in the string from the position start. Return STRING_FAILURE if not found. By default, start is zero.
- Search for the position of the character c from the position start (include) in the string. Return STRING_FAILURE if not found. By default, start is zero.
- Reverse search for the position of the character c from the position start (include) in the string. Return STRING_FAILURE if not found. By default, start is zero.
- Search the first occurrence of the needle in the string from the position start. Return STRING_FAILURE if not found.
- Set the string to the other string. Set the string to the source string.
- Set the character at the given index.
- Set the string to the n first characters of other one.
- Set the string to the other C string. Set the string to the source C string.
- Set the string to the n first characters of the C string.
- Get string size (usually length, but not for UTF-8)
- Test if the string starts with the given string.
- Test if the string starts with the given C string.
- Swap two strings. Swap the two strings string_1 and string_2.
- Trim a string from the given set of characters (default is “ \n\r\t“).
- Main generic UTF8 decoder. It takes a character, and the previous state and the previous value of the unicode value. It updates the state and the decoded unicode value. A decoded unicode encoded value is valid only when the state is FuriStringUTF8StateStarting.
- Compute the length in UTF8 characters in the string.
- Push unicode into string, encoding it in UTF8.
- Format in the string the given printf format
- Allocate FuriThread
- Allocate FuriThread, shortcut version
- Enable heap tracing
- Enumerate threads
- Release FuriThread
- Get thread appid
- Get FuriThread instance for current thread
- Get FreeRTOS FuriThreadId for current thread
- Get current thread priority
- Get thread heap size
- Get FreeRTOS FuriThreadId for FuriThread instance
- Get thread name
- Get thread return code
- Get thread stack watermark
- Get FuriThread state
- Get STDOUT callback for thead
- Get thread suspended state
- Join FuriThread
- Mark thread as service The service cannot be stopped or removed, and cannot exit from the thread body
- Resume thread
- Set FuriThread appid Technically, it is like a “process id”, but it is not a system-wide unique identifier. All threads spawned by the same app will have the same appid.
- Set FuriThread callback
- Set FuriThread context
- Set current thread priority
- Set FuriThread name
- Set FuriThread priority
- Set FuriThread stack size
- Set FuriThread state change callback
- Set FuriThread state change context
- Set STDOUT callback for thread
- Start FuriThread
- Flush data to STDOUT
- Write data to buffered STDOUT
- Suspend thread
- Return control to scheduler
- Allocate timer
- Free timer
- Is timer running
- Start timer
- Stop timer
- Add gui canvas commit callback This callback will be called upon Canvas commit Callback dispatched from GUI thread and is time critical
- Add view_port to view_port tree
- Acquire Direct Draw lock and get Canvas instance This method return Canvas instance for use in monopoly mode. Direct draw lock disables input and draw call dispatch functions in GUI service. No other applications or services will be able to draw until gui_direct_draw_release call.
- Release Direct Draw Lock Release Direct Draw Lock, enables Input and Draw call processing. Canvas acquired in gui_direct_draw_acquire will become invalid after this call.
- Get gui canvas frame buffer size
- Remove gui canvas commit callback
- Remove view_port from rendering tree
- Set lockdown mode When lockdown mode is enabled, only GuiLayerDesktop is shown. This feature prevents services from showing sensitive information when flipper is locked.
- Send ViewPort to the front Places selected ViewPort to the top of the drawing stack
- Get SD card status
- Init SD card detect
- Set SD card detect pin to low
- Convert ASCII hex value to nibble
- Convert ASCII hex value to byte
- Convert ASCII hex values to uint8_t
- Convert ASCII hex values to uint64_t
- Allocate a key object
- Destroy the key object, free resources
- Get the protocol id held by the key
- Reset the protocol id and data held by the key
- Set the protocol id held by the key
- Allocate an iButtonProtocols object
- Make all necessary internal adjustments after editing the key
- Start emulating the key
- Stop emulating the key
- Destroy an iButtonProtocols object, free resources
- Get a pointer to the key’s editable data (for in-place editing)
- Get protocol features bitmask by protocol id
- Get the protocol id based on its name
- Get the manufacturer name based on the protocol id
- Get maximum data size out of all protocols available
- Get the protocol name based on the protocol id
- Get the total number of available protocols
- Check whether the key data is valid
- Load the key from a file.
- Read a physical device (a key or an emulator)
- Format a string containing device brief data
- Format a string containing device full data
- Format a string containing error message (for invalid keys)
- Save the key data to a file.
- Write the key to a blank
- Write the key to another one of the same type
- Allocate ibutton worker
- Set “emulate success” callback
- Start emulate mode
- Free ibutton worker
- Set “read success” callback
- Start read mode
- Start ibutton worker thread
- Stop all modes
- Stop ibutton worker thread
- Start write blank mode
- Start write copy mode
- Set “write event” callback
- Allocate icon animation instance with const icon data. always returns Icon or stops system if not enough memory
- Release icon animation instance
- Get icon animation height
- Get icon animation width
- Returns true if current frame is a last one
- Set IconAnimation update callback Normally you do not need to use this function, use view_tie_icon_animation instead.
- Start icon animation
- Stop icon animation
- Get Icon XBM bitmap data
- Get icon height
- Get icon width
- Initialize decoder.
- Allocate INFRARED encoder.
- Check whether decoder is ready. Functionality is quite similar to infrared_decode(), but with no timing providing. Some protocols (e.g. Sony SIRC) has variable payload length, which means we can’t recognize end of message right after receiving last bit. That’s why application should call to infrared_check_decoder_ready() after some timeout to retrieve decoded message, if so.
- Provide to decoder next timing.
- Encode previously set INFRARED message. Usage: 1) alloc with \c infrared_alloc_encoder() 2) set message to encode with \c infrared_reset_encoder() 3) call for \c infrared_encode() to continuously get one at a time timings. 4) when \c infrared_encode() returns InfraredStatusDone, it means new message is fully encoded. 5) to encode additional timings, just continue calling \c infrared_encode().
- Deinitialize decoder and free allocated memory.
- Free encoder handler previously allocated with \c infrared_alloc_encoder().
- Get address length by protocol enum.
- Get protocol enum by protocol name.
- Get command length by protocol enum.
- Get PWM duty cycle value for selected protocol
- Get PWM frequency value for selected protocol
- Get the minimum count of signal repeats for the selected protocol
- Get protocol name by protocol enum.
- Checks whether protocol valid.
- Reset INFRARED decoder.
- Reset INFRARED encoder and set new message to encode. If it’s not called after receiveing InfraredStatusDone in \c infrared_encode(), encoder will encode repeat messages till the end of time.
- Send message over INFRARED.
- Send raw data through infrared port.
- Send raw data through infrared port, with additional settings.
- Allocate InfraredWorker
- Free InfraredWorker
- Acquire decoded message from interface struct ‘InfraredWorkerSignal’. First, you have to ensure that signal is decoded.
- Acquire raw signal from interface struct ‘InfraredWorkerSignal’. First, you have to ensure that signal is raw.
- Enable blinking on receiving any signal on IR port.
- Enable decoding of received infrared signals.
- Set received data callback InfraredWorker
- Start InfraredWorker thread, initialise furi_hal, prepare all work.
- Stop InfraredWorker thread, deinitialize furi_hal.
- Set current decoded signal for InfraredWorker instance
- Set current raw signal for InfraredWorker instance
- Clarify is received signal either decoded or raw
- Callback to pass to infrared_worker_tx_set_get_signal_callback() if signal is steady and will not be changed between infrared_worker start and stop. Before starting transmission, desired steady signal must be set with infrared_worker_set_decoded_signal() or infrared_worker_set_raw_signal(). This function should not be called directly.
- Set callback for providing next signal to send
- Set callback for end of signal transmitting
- Start transmitting signal. Callback InfraredWorkerGetSignalCallback should be set before this function is called, as it calls for it to fill buffer before starting transmission.
- Stop transmitting signal. Waits for end of current signal and stops transmission.
- Get human readable input key name
- Get human readable input type name
- Load protocol from file to dictionary
- Save protocol from dictionary to file
- Allocate a new LFRFIDRawFile instance
- Free a LFRFIDRawFile instance
- Open RAW file for reading
- Open RAW file for writing
- Read RAW file header
- Read varint-encoded pair from RAW file
- Write data to RAW file
- Write RAW file header
- Allocate a new LFRFIDRawWorker instance
- Free a LFRFIDRawWorker instance
- Start emulate
- Start reading
- Stop worker
- Allocate LF-RFID worker
- Emulate raw read mode
- Start emulate mode
- Free LF-RFID worker
- Start raw read mode
- Start read mode
- Start LF-RFID worker thread
- Stop all modes
- Stop LF-RFID worker thread
- Start write mode
- Get loader pubsub
- Check if loader is locked
- Lock application start
- Show loader menu
- Start application
- Start application with GUI error message
- Unlock application start
- Allocate and initialize This View used to show system is doing some processing
- Deinitialize and free Loading View
- Get Loading view
- Convert Celsius to Fahrenheit
- Convert Fahrenheit to Celsius
- Format date to furi string
- Format time to furi string
- Get Locale DateFormat
- Get Locale measurement units
- Get Locale time format
- Set Locale DateFormat
- Set locale measurement units
- Set Locale Time Format
- md5⚠Output = MD5( input buffer )
- MD5 final digest
- MD5 context setup
- MD5 process buffer
- Get free heap size
- Get heap watermark
- Get total heap size
- Memmgr heap disable thread allocation tracking
- Memmgr heap enable thread allocation tracking
- Memmgr heap get the max contiguous block size on the heap
- Memmgr heap get allocatred thread memory
- Print the address and size of all free blocks to stdout
- Add item to menu
- Menu allocation and initialization
- Free menu
- Get Menu view
- Clean menu
- Set current menu item
- Allocate MfClassicDict instance
- Delete key at target offset
- Free MfClassicDict instance
- Get key at target offset as string_t
- Get total keys count
- Send internal (apply to permanent layer) notification message. Think twice before use.
- Send internal (apply to permanent layer) notification message and wait for notification end. Think twice before use.
- Allocate OneWireHost instance
- Destroy OneWireHost instance, free resources
- Read one byte
- Read one bit
- Read one or more bytes
- Reset the 1-Wire bus
- Reset previous search results
- Search for devices on the 1-Wire bus
- Enable overdrive mode
- Start working with the bus
- Stop working with the bus
- Set the family code to search for
- Write one byte
- Write one bit
- Write one or more bytes
- Allocate OneWireSlave instance
- Destroy OneWireSlave instance, free resources
- Receive one or more bytes of data
- Receive one bit
- Send one or more bytes of data
- Send one bit
- Set a callback function to be called on each command. The return value of the callback determines whether further operation is possible. As a rule of thumb, return true unless a critical error happened.
- Enable overdrive mode
- Set a callback function to be called on each reset. The return value of the callback determines whether the emulated device supports the short reset (passed as the is_short parameter). In most applications, it should also call onewire_slave_set_overdrive() to set the appropriate speed mode.
- Set a callback to report emulation success
- Start working with the bus
- Stop working with the bus
- Appends new component to path, adding path delimiter
- Appends new component to path, adding path delimiter
- Check that path contains only ascii characters
- Extract last path component
- Extract path, except for last component
- Extract file extension from path.
- Extract filename string from path.
- Extract filename without extension from path.
- Allocates new PluginManager
- Frees PluginManager
- Returns plugin descriptor by index
- Returns number of loaded plugins
- Returns plugin entry point by index
- Loads all plugins from specified directory
- Loads single plugin by full path
- Allocate and initialize popup This popup used to ask simple questions like Yes/
- Disable popup timeout
- Enable popup timeout
- Deinitialize and free popup
- Get popup view
- Reset popup instance state
- Set popup header text
- Set popup context
- Set popup header text If text is null, popup header will not be rendered
- Set popup icon If icon position is negative, popup icon will not be rendered
- Set popup text If text is null, popup text will not be rendered
- Set popup timeout
- Enable or disable battery low level notification message
- Get power info
- Get power event pubsub handler
- Check battery health
- Power off device
- Reboot device
- powf⚠
- Format a data buffer as a canonical HEX dump
- Builds key and value strings and outputs them via a callback function
- rand⚠
- RFAL Turn Field On and Start GT
- Low Power Mode Start
- Low Power Mode Stop
- RFAL Worker
- Close RPC session It is guaranteed that no callbacks will be called as soon as session is closed. So no need in setting callbacks to NULL after session close.
- Give bytes to RPC service to decode them and perform command
- Get available size of RPC buffer
- Get RPC session owner
- Open RPC session USAGE: 1) rpc_session_open(); 2) rpc_session_set_context(); 3) rpc_session_set_send_bytes_callback(); 4) rpc_session_set_close_callback(); 5) while(1) { rpc_session_feed(); } 6) rpc_session_close();
- Set callback to notify that buffer is empty
- Set callback to be called when RPC command to close session is received WARN: It’s forbidden to call RPC API within RpcSessionClosedCallback
- Set session context for callbacks to pass
- Set callback to send bytes to client WARN: It’s forbidden to call RPC API within RpcSendBytesCallback
- Set callback to be called when RPC session is closed
- Scene Manager allocation and configuration Scene Manager allocates all scenes internally
- Free Scene Manager with allocated Scenes
- Get Scene state
- Back event handler Calls Scene event handler with Back event parameter
- Custom event handler Calls Scene event handler with Custom event parameter
- Tick event handler Calls Scene event handler with Tick event parameter
- Search previous Scene
- Add and run next Scene
- Run previous Scene
- Clear Scene stack and switch to another Scene
- Search and switch to previous Scene
- Search and switch to previous Scene, multiple choice
- Set Scene state
- Exit from current scene
- Generates random name
- Copy file, file must not be open
- Check that file or dir exists
- Gets general information about the storage
- Copy one folder contents into another with rename of all conflicting files
- Move content of one folder to another, with rename of all conflicting files. Source folder will be deleted if the migration is successful.
- Creates a directory
- Removes a file/directory from the repository, the directory must be empty and the file/directory must not be open
- Renames file/directory, file/directory must not be open. Will overwrite existing file.
- Parse aliases in path and replace them with real path Also will create special folders if they are not exist
- Retrieves information about a file/directory
- Retrieves unix timestamp of last access
- Close the directory. Also free file handle structure and point it to the NULL.
- Check that dir exists
- Opens a directory to get objects from it
- Reads the next object in the directory
- Retrieves the error text from the error id
- Allocates and initializes a file descriptor
- Close the file.
- Copy data from one opened file to another opened file Size bytes will be copied from current position of source file to current position of destination file
- Checks that the r/w pointer is at the end of the file
- Check that file exists
- Frees the file descriptor. Closes the file if it was open.
- Retrieves the error id from the file object
- Retrieves the error text from the file object
- Tells if the file is a directory
- Tells if the file is open
- Opens an existing file or create a new one.
- Reads bytes from a file into a buffer
- Moves the r/w pointer
- Gets the size of the file
- Gets the position of the r/w pointer
- Truncates the file size to the current position of the r/w pointer
- Writes bytes from a buffer to a file
- Get next free filename.
- Get storage pubsub. Storage will send StorageEvent messages.
- Backs up internal storage to a tar archive
- Restores internal storage from a tar archive
- Formats SD Card
- Retrieves SD card information
- Retrieves SD card status
- Will unmount the SD card
- Creates a directory
- Removes a file/directory, the directory must be empty and the file/directory must not be open
- Recursively removes a file/directory, the directory can be not empty
- Clean (empty) Stream
- Copy data from one stream to another. Data will be copied from current RW pointer and to current RW pointer.
- Copy data from one stream to another. Data will be copied from start of one stream and to start of other stream.
- Remove N chars from the stream, starting at the current pointer. The size may be larger than stream size, the stream will be cleared from current RW pointer to the end.
- Delete N chars from the stream and write data by calling write_callback(context)
- Delete N chars from the stream and insert char to the stream
- Delete N chars from the stream and insert const char* to the stream
- Delete N chars from the stream and insert formatted string to the stream
- Delete N chars from the stream and insert string to the stream
- Delete N chars from the stream and insert formatted string to the stream, va_list version
- Dump stream inner data (size, RW position, content)
- Indicates that the RW pointer is at the end of the stream
- Free Stream
- Insert N chars to the stream, starting at the current pointer. Data will be inserted, not overwritten, so the stream will be increased in size.
- Insert char to the stream
- Insert const char* to the stream
- Insert formatted string to the stream
- Insert string to the stream
- Insert formatted string to the stream, va_list version
- Loads data to the stream from a file. Data will be loaded to the current RW pointer. RW pointer will be moved to the end of the stream.
- Read N bytes from stream
- Read line from a stream (supports LF and CRLF line endings)
- Moves the RW pointer to the start
- Writes data from a stream to a file. Data will be saved starting from the current RW pointer. RW pointer will be moved to the end of the stream.
- Moves the RW pointer.
- Seek to next occurrence of the character
- Gets the size of the stream
- Splits one stream into two others. The original stream will remain untouched.
- Gets the value of the RW pointer
- Write N bytes to the stream
- Write char to the stream
- Write const char* to the stream
- Write formatted string to the stream
- Write string to the stream
- Write formatted string to the stream, va_list version
- Allocate string stream
- Deserialize data SubGhzBlockGeneric.
- Deserialize data SubGhzBlockGeneric.
- Get name preset.
- Serialize data SubGhzBlockGeneric.
- Allocate SubGhzEnvironment.
- Free SubGhzEnvironment.
- Get filename to work with Alutech at-4n.
- Get filename to work with Came Atomo.
- Get pointer to a SubGhzKeystore* instance.
- Get filename to work with Nice Flor-S.
- Get list of protocols names.
- Get list of protocols to work.
- Downloading the manufacture key file.
- Set filename to work with Alutech at-4n.
- Set filename to work with Came Atomo.
- Set filename to work with Nice Flor-S.
- Set list of protocols to work.
- Add data bit when decoding.
- Compute Addition of a number of bytes
- Add data to_128 bit when decoding.
- CRC-4
- CRC-7
- Generic Cyclic Redundancy Check CRC-8. Example polynomial: 0x31 = x8 + x5 + x4 + 1 (x8 is implicit) Example polynomial: 0x80 = x8 + x7 (a normal bit-by-bit parity XOR)
- “Little-endian” Cyclic Redundancy Check CRC-8 LE Input and output are reflected, i.e. least significant bit is shifted in first
- CRC-16
- CRC-16 LSB. Input and output are reflected, i.e. least significant bit is shifted in first. Note that poly and init already need to be reflected
- Get data bit when encoding HEX array.
- Getting the hash sum of the last randomly received parcel.
- Get parity the data bitwise
- Generating an upload from data.
- Digest-8 by “LFSR-based Toeplitz hash”
- Digest-8 by “LFSR-based Toeplitz hash”, byte reflect, bit reflect
- Digest-16 by “LFSR-based Toeplitz hash”
- Compute bit parity of a single byte (8 bits)
- Compute bit parity of a number of bytes
- Flip the data bitwise
- Set data bit when encoding HEX array.
- Compute XOR (byte-wide parity) of a number of bytes
- Deserialize data SubGhzProtocolDecoderBase.
- Getting the hash sum of the last randomly received parcel.
- Getting a textual representation of the received data.
- Serialize data SubGhzProtocolDecoderBase.
- Allocate SubGhzProtocolDecoderRAW.
- Deserialize data SubGhzProtocolDecoderRAW.
- Parse a raw sequence of levels and durations received from the air.
- Free SubGhzProtocolDecoderRAW.
- Getting a textual representation of the received data.
- Reset decoder SubGhzProtocolDecoderRAW.
- Allocate SubGhzProtocolEncoderRAW.
- Deserialize and generating an upload to send.
- Free SubGhzProtocolEncoderRAW.
- Forced transmission stop.
- Getting the level and duration of the upload to be loaded into DMA.
- Set callback on completion of file transfer.
- File generation for RAW work.
- Get the number of samples received SubGhzProtocolDecoderRAW.
- Open file for writing
- pause writing to flash.
- Stop writing file to flash
- Getting the number of registered protocols.
- Registration protocol by index in array SubGhzProtocol.
- Registration by name SubGhzProtocol.
- Allocate and init SubGhzReceiver.
- Parse a raw sequence of levels and durations received from the air.
- Free SubGhzReceiver.
- Reset decoder SubGhzReceiver.
- Search for a cattery by his name.
- Set the filter of receivers that will work at the moment.
- Set a callback upon completion of successful decoding of one of the protocols.
- Allocate and init SubGhzTransmitter.
- Deserialize and generating an upload to send.
- Free SubGhzTransmitter.
- Get protocol instance.
- Forced transmission stop.
- Getting the level and duration of the upload to be loaded into DMA.
- Allocate SubGhzTxRxWorker
- SubGhzTxRxWorker, get available data
- Free SubGhzTxRxWorker
- Check if worker is running
- SubGhzTxRxWorker, read data
- Сallback SubGhzTxRxWorker when there is data to read in an empty buffer
- Start SubGhzTxRxWorker
- Stop SubGhzTxRxWorker
- SubGhzTxRxWorker, add data to transfer
- Allocate SubGhzWorker.
- Free SubGhzWorker.
- Check if worker is running.
- Context callback SubGhzWorker.
- Short duration filter setting. glues short durations into 1. The default setting is 30 us, if set to 0 the filter will be disabled
- Overrun callback SubGhzWorker.
- Pair callback SubGhzWorker.
- Start SubGhzWorker.
- Stop SubGhzWorker
- Add item to submenu
- Allocate and initialize submenu This submenu is used to select one option
- Deinitialize and free submenu
- Get submenu view
- Remove all items from submenu
- Set optional header for submenu
- Set submenu item selector
- Write T5577 tag data to tag
- Allocate and initialize text_box
- Deinitialize and free text_box
- Get text_box view
- Clean text_box
- Set TextBox focus
- Set TextBox font
- Set text for text_box
- Allocate and initialize text input This text input is used to enter string
- Deinitialize and free text input
- Get text input view
- Clean text input view Note: this function does not free memory
- Set text input header text
- Set text input result callback
- Calculate Timer
- Checks if a Timer is Expired
- Convert uint8_t to ASCII hex values
- task. h
void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority ); INCLUDE_vTaskPrioritySet must be defined as 1 for this function to be available. See the configuration section for more information. Set the priority of any task. A context switch will occur before the function returns if the priority being set is higher than the currently executing task. Example usage:
void vAFunction( void ) { TaskHandle_t xHandle; // Create a task, storing the handle. xTaskCreate( vTaskCode, “NAME”, STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle ); // … // Use the handle to raise the priority of the created task. vTaskPrioritySet( xHandle, tskIDLE_PRIORITY + 1 ); // … // Use a NULL handle to raise our priority to the same value. vTaskPrioritySet( NULL, tskIDLE_PRIORITY + 1 ); } - Get the index of a bool array element which is equal to the given value. Returned index corresponds to the first element found. If no suitable elements were found, the function returns 0.
- Get the index of a float array element which is closest to the given value. Returned index corresponds to the first element found. If no suitable elements were found, the function returns 0.
- Get the index of a int32_t array element which is closest to the given value. Returned index corresponds to the first element found. If no suitable elements were found, the function returns 0.
- Get the index of a uint32_t array element which is closest to the given value. Returned index corresponds to the first element found. If no suitable elements were found, the function returns 0.
- Get item context
- Get item current selected index
- Add item to VariableItemList
- Allocate and initialize VariableItemList
- Deinitialize and free VariableItemList
- Get VariableItemList View instance
- Clear all elements from list
- Set enter callback
- Set item current selected index
- Set item current selected text
- Set number of values for item
- Get current running firmware version handle. You can store it somewhere. But if you want to retrieve data, you have to use ‘version_get()’ set of functions. Also, ‘version_get()’ imply to use this handle if no handle (NULL_PTR) provided.
- Get build date.
- Get flag indicating if this build is “dirty” (source code had uncommited changes)
- Get firmware origin. “Official” for mainline firmware, fork name for forks. Set by FIRMWARE_ORIGIN fbt argument.
- Get git repo origin
- Get git branch.
- Get number of commit in git branch.
- Get git commit hash.
- Get hardware target this firmware was built for
- Get build version. Build version is last tag in git history.
- Allocate and init View
- Allocate view model.
- Commit view model
- Add view to ViewDispatcher
- Allocate ViewDispatcher instance
- Attach ViewDispatcher to GUI
- Enable queue support If queue enabled all input and custom events will be dispatched throw internal queue
- Free ViewDispatcher instance
- Remove view from ViewDispatcher
- Run ViewDispatcher Use only after queue enabled
- Send custom event
- Send ViewPort of this ViewDispatcher instance to back
- Send ViewPort of this ViewDispatcher instance to front
- Set custom event handler Called on Custom Event, if it is not consumed by view
- Set event callback context
- Set navigation event handler Called on Input Short Back Event, if it is not consumed by view
- Set tick event handler
- Stop ViewDispatcher Use only after queue enabled
- Switch to View
- Free View
- Free view model data memory.
- Get view model data
- ViewPort allocator always returns view_port or stops system if not enough memory.
- ViewPort event callbacks
- Enable or disable view_port rendering.
- ViewPort deallocator Ensure that view_port was unregistered in GUI system before use.
- Set view_port height. Will be used to limit canvas drawing area and autolayout feature.
- Set ViewPort orientation.
- Set view_port width. Will be used to limit canvas drawing area and autolayout feature.
- Emit update signal to GUI system. Rendering will happen later after GUI system process signal.
- Set View Draw callback
- Set View Custom callback
- Set View Draw callback
- Set Enter callback
- Set Exit callback
- Set View Input callback
- Set View Orientation
- Set Navigation Previous callback
- Set Update callback
- Set View Draw callback
- Add View to ViewStack. Adds View on top of ViewStack.
- Allocate and init ViewStack
- Free ViewStack instance
- Get View of ViewStack. Should this View to any view manager such as ViewDispatcher or ViewHolder.
- Remove any View in ViewStack. If no View to remove found - ignore.
- Tie IconAnimation with View
- Add Button Element
- Add Frame Element
- Add Icon Element
- Add String Element
- Add Multi String Element
- Add Text Box Element
- Add Text Scroll Element
- Allocate Widget that holds Widget Elements
- Free Widget
- Get Widget view
- Reset Widget
- task. h ``` TaskHandle_t xTaskGetHandle( const char *pcNameToQuery ); NOTE: This function takes a relatively long time to complete and should be used sparingly.
- task. h ``` TickType_t xTaskGetTickCount( void );
Type Aliases
- Alignment enumeration
- Prototype for Scene on_enter handler
- Prototype for Scene on_event handler
- Prototype for Scene on_exit handler
- Callback type to call for handling selecting button_panel items
- Callback for any button menu actions
- Type of button. Difference in drawing buttons.
- callback that is executed when byte buffer is changed
- callback that is executed on save button press
- Font Direction
- Canvas Orientation
- Cli callback function pointer. Implement this interface and use add_cli_command
- Color enumeration
- DialogEx result
- DialogEx result callback type
- Message result type
- Access mode flags
- API errors enumeration
- Open mode flags
- Fonts enumeration
- Serial service callback type
- FuriHalCryptoGCMState Result of a GCM operation
- FuriHalCryptoKey Size in bits
- FuriHalCryptoKey Type
- FuriHal i2c bus states
- FuriHal i2c bus event callback
- FuriHal i2c handle states
- FuriHal i2c handle event callback
- Signature of callback function for receiving continuous INFRARED rx signal.
- Signature of callback function for reaching silence timeout on INFRARED port.
- Callback type for providing data to INFRARED DMA TX system. It is called every tim
- Callback type called every time signal is sent by DMA to Timer. Actually, it means there are 2 timings left to send for this signal, which is almost end. Don’t use this callback to stop transmission, as far as there are next signal is charged for transmission by DMA.
- Timer ISR
- Power IC type
- FuriHal spi bus states
- FuriHal spi bus event callback
- FuriHal spi handle states
- FuriHal spi handle event callback
- Async TX callback type
- Signal Timings Capture callback
- Switchable Radio Paths
- Radio Presets
- UART channels
- Device Colors
- Device Display
- OTP Versions enum
- Device Regions
- FuriPubSub Callback type
- State of the UTF8 decoding machine state.
- An unicode value.
- FuriThreadCallback Your callback to run in new thread
- FuriThreadId proxy type to OS low level functions
- FuriThreadPriority
- FuriThreadState
- FuriThread state change callback called upon thread state change
- Write to stdout callback
- Gpio alternate functions
- Interrupt callback prototype
- Gpio modes
- Gpio pull modes
- Gpio speed modes
- Gui Canvas Commit Callback
- Gui layers
- Icon Animation Callback. Used for update notification
- Icon rotation
- Callback type for providing next signal to send. Should be used with infrared_worker_make_decoded_signal() or infrared_worker_make_raw_signal()
- Callback type for ‘message is sent’ event
- Callback type to call by InfraredWorker thread when new signal is received
- Input Types Some of them are physical events and some logical
- Menu Item Callback
- Popup result callback type
- Callback type called every time another key-value pair of device information is ready
- Callback to notify client that buffer is empty
- RPC owner
- Callback to send to client any data (e.g. response to command)
- Callback to notify transport layer that close_session command is received. Any other actions lays on transport layer. No destruction or session close performed.
- Callback to notify transport layer that session was closed and all operations were finished
- Scene Manager events type
- Internal LFS Functions
- UART events
- View callback
- View Custom callback
- Prototype for custom event callback
- Prototype for navigation event callback
- Prototype for tick event callback
- ViewDispatcher view_port placement
- View Draw callback
- View Input callback
- View model types
- View navigation callback
- ViewPort Draw callback
- ViewPort Input callback
- View Update Callback Called upon model change, need to be propagated to GUI throw ViewPort update
- Reporting status results.
- USB set configuration callback function
- USB control callback function.
- Represents a USB device data.
- USB get descriptor callback function
- Generic USB device event callback for events and endpoints processing
- Connects or disconnects USB hardware to/from usb host
- Enables or disables USB hardware
- Configures endpoint
- De-configures, cleans and disables endpoint
- Checks endpoint for stalled state
- Reads data from OUT or control endpoint
- Stalls and unstalls endpoint
- Writes data to IN or control endpoint
- Gets frame number from usb hardware.
- Makes a string descriptor contains unique serial number from hardware ID’s
- USBD_HW* /**\brief Get USB device status and capabilities.
- Polls USB hardware for the events
- Sets USB hardware address
- Reporting status results.
- USB control transfer completed callback function.